package com.aabte.springcloudlearn.eurekaserverproviderdemo.controller;

import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.Random;

/**
 * Hystrix缓存：
 * 请求缓存不是只写入一次结果就不再变化的，
 * 而是每次请求到达Controller的时候，
 * 我们都需要为HystrixRequestContext进行初始化，
 * 之前的缓存也就是不存在了，
 * 我们是在同一个请求中保证结果相同，
 * 同一次请求中的第一次访问后对结果进行缓存，
 * 缓存的生命周期只有一次请求！
 *
 * @author Daniel
 */
@Slf4j
@RestController
public class CacheProviderController {

    @GetMapping("/hystrix/cache")
    public Integer getRandomInteger() {
        log.info("Start getRandomInteger.");
        int randomValue = new Random().nextInt(99999);
        log.info("End getRandomInteger. randomValue: {}", randomValue);
        return randomValue;
    }


}
